package tests;

import common.Utils;
import org.junit.jupiter.api.Assertions;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;

public class ActivityCenterPage extends Utils {

    private static String url = "http://82.156.185.199:8080/admin.html";

    public ActivityCenterPage() {
        super(url);
    }

    /**
     * 测试 活动列表页 能否正常打开
     */
    public void activityListPage() throws InterruptedException {
        driver.findElement(By.cssSelector("#activitiesList")).click();
        // switchTo().frame 切换到iframe
        driver.switchTo().frame(0);
        // "活动列表"
        driver.findElement(By.cssSelector("body > div > h2"));
        // "首页" 按钮
        driver.findElement(By.cssSelector("body > div > div.pagination > button:nth-child(1)"));
        // "尾页" 按钮
        driver.findElement(By.cssSelector("body > div > div.pagination > button:nth-child(5)"));
    }

    /**
     * 测试 新建活动列表页 能否正常打开
     */
    public void createActivityPage(){
        // 切换回主页面（关键！）
        driver.switchTo().defaultContent();
        driver.findElement(By.cssSelector("#createActivity")).click();
        driver.switchTo().frame(0);
        // "创建抽奖活动"
        driver.findElement(By.cssSelector("body > div.container > h2"));
        // "活动名称"
        driver.findElement(By.cssSelector("#activityForm > div:nth-child(1) > label"));
        // "活动名称" 输入框
        driver.findElement(By.cssSelector("#activityName"));

        // "圈选奖品" 按钮
        driver.findElement(By.cssSelector("#buttonPrizes"));
        // 点击按钮
        driver.findElement(By.cssSelector("#buttonPrizes")).click();
        // "奖品列表"
        driver.findElement(By.xpath("//*[@id=\"prizesModal\"]/div/h2"));
        // X
        driver.findElement(By.cssSelector("#prizesModal > div > h2 > span")).click();

        // "圈选人员" 按钮
        driver.findElement(By.cssSelector("#buttonUsers"));
        driver.findElement(By.cssSelector("#buttonUsers")).click();
        driver.findElement(By.xpath("//*[@id=\"usersModal\"]/div/h2"));
        driver.findElement(By.cssSelector("#usersModal > div > h2 > span")).click();

        // "创建活动" 按钮
        driver.findElement(By.cssSelector("#createActivity"));
    }

    /**
     * 测试 奖品列表页 能否正常打开
     */
    public void prizeListPage(){
        // 切换回主页面（关键！）
        driver.switchTo().defaultContent();
        driver.findElement(By.cssSelector("body > div.cont-box > div.sidebar > ul > li:nth-child(2) > ul > li:nth-child(1) > a")).click();
        driver.switchTo().frame(0);
        // "奖品列表"
        driver.findElement(By.cssSelector("body > div > h2"));
        // "首页" 按钮
        driver.findElement(By.cssSelector("body > div > div.pagination > button:nth-child(1)"));
        // "尾页" 按钮
        driver.findElement(By.cssSelector("body > div > div.pagination > button:nth-child(5)"));
    }

    /**
     * 测试 创建奖品页 能否正常打开
     */
    public void createPrizePage(){
        // 切换回主页面（关键！）
        driver.switchTo().defaultContent();
        driver.findElement(By.cssSelector("body > div.cont-box > div.sidebar > ul > li:nth-child(2) > ul > li:nth-child(2) > a")).click();
        driver.switchTo().frame(0);
        // "开始创建奖品"
        driver.findElement(By.cssSelector("body > div > h2"));
        // "奖品名称"
        driver.findElement(By.cssSelector("#prizeRows > div > div:nth-child(1) > label"));
        // "奖品名称" 输入框
        driver.findElement(By.cssSelector("#prizeName"));
        // "创建奖品" 按钮
        driver.findElement(By.cssSelector("body > div > button"));
    }

    /**
     * 测试 人员列表页 能否正常打开
     */
    public void personListPage(){
        // 切换回主页面（关键！）
        driver.switchTo().defaultContent();
        driver.findElement(By.cssSelector("#userList")).click();
        driver.switchTo().frame(0);
        // "人员列表"
        driver.findElement(By.cssSelector("body > div > h2"));
        // "人员id"
        driver.findElement(By.cssSelector("body > div > div > table > thead > tr > th:nth-child(1)"));
        // "姓名"
        driver.findElement(By.cssSelector("body > div > div > table > thead > tr > th:nth-child(2)"));
        // "身份"
        driver.findElement(By.cssSelector("body > div > div > table > thead > tr > th:nth-child(3)"));
    }

    /**
     * 测试 注册用户页面 能否正常打开
     */
    public void personRegisterPage(){
        // 切换回主页面（关键！）
        driver.switchTo().defaultContent();
        driver.findElement(By.cssSelector("#register")).click();
        driver.switchTo().frame(0);
        // "填写注册信息"
        driver.findElement(By.cssSelector("body > div > h2"));
        // "姓名"
        driver.findElement(By.cssSelector("#registerForm > div:nth-child(1) > label"));
        // "姓名" 输入框
        driver.findElement(By.cssSelector("#name"));
        // "注册" 按钮
        driver.findElement(By.cssSelector("#registerForm > button"));
    }

    /**
     * 测试 退出 按钮
     */
    public void exit(){
        // 切换回主页面（关键！）
        driver.switchTo().defaultContent();
        driver.findElement(By.cssSelector("body > div.header-box > div.user-box > div > span")).click();
        String actualUrl = driver.getCurrentUrl();
        String expectUrl = "http://82.156.185.199:8080/blogin.html";
        Assertions.assertEquals(expectUrl, actualUrl);
        driver.close();
    }
}
